<?php
/**
 * 描述 : 服务端通信接口
 * 作者 : Edgar.lee
 */
require dirname(dirname(__FILE__)).'/api/uc.php';

if( !isset($_GET['id']) || !isset($_GET['to']) || !isset($_GET['md5']) ) exit('-2');                                    //拒绝访问
get_magic_quotes_gpc() || uc_api_system::slashesDeep($_GET);                                                            //防注入
$config = &uc::$config;                                                                                                 //读取配置文件
$class = 'uc_com_face::';                                                                                               //类前缀

if( empty($config['id']) ) {                                                                                            //服务端
    $config['id'] = $_GET['id'];                                                                                        //切换到客户端配置
    $class = 'uc::';

    $sql = "SELECT
        `key`
    FROM
        `uc_appList`
    WHERE
        `id` = '{$_GET['id']}'";

    if( $index = &uc_com_face::_sql($sql) ) {
        $config['key'] = $index[0]['key'];                                                                              //设置客户端key
    } else {
        exit('-2.2');                                                                                                   //服务端配置不存在
    }
}

$_GET['to'] >= $_SERVER['REQUEST_TIME'] || exit('-2.3');                                                                //请求超时
md5($config['id'] . $config['key']. $_GET['to']) === $_GET['md5'] || exit('-2.1');                                      //未通过安全校验

$data = &uc::_coding($_REQUEST['data'], false);                                                                         //加密数据
get_magic_quotes_gpc() || uc_api_system::slashesDeep($data);                                                            //防注入
($data = &uc::_call($data, $class, true)) === false && $data = -1;                                                      //调用请求信息
echo uc::_coding($data, true);                                                                                          //加密返回